package leetcode.Leetcode128;

import java.util.HashSet;
import java.util.Set;

class DraftSolution {
    public int longestConsecutive(int[] nums) {
        HashSet<Integer> numSet = new HashSet<>();
        //去重
        for (int num : nums) {
            numSet.add(num);
        }
        //可以从x,x+1,x+2,x+3....x+n来计算，但是x+1...x+n会被重复计算
        //因此对于每个连续序列，先找到其最小值，再去找最长序列
        int longest=0;
        for (Integer x : numSet) {
            if (!numSet.contains(x-1)){
                int current=1;
                int currentNum = x;//注意这里格式
                while (numSet.contains(currentNum+1)){
                    currentNum += 1;
                    current+=1;
                }
                longest = Math.max(current, longest);
            }
        }
        return longest;
    }
}
